package com.meilingcloud.research.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.meilingcloud.research.domain.RwsQcEntry;
import com.meilingcloud.research.domain.RwsQcSample;
import com.meilingcloud.research.domain.RwsQualityControl;
import com.meilingcloud.research.domain.RwsQualityEntry;
import com.meilingcloud.research.domain.vo.QcEntryReportVo;
import com.meilingcloud.research.domain.vo.QcSampleBackupVo;

import java.util.List;

/**
 * 质控 Service接口
 *
 * @author chenl
 * @date 2021-05-10
 */
public interface IRwsQualityControlService extends IService<RwsQualityControl> {

    /**
     * 查询列表
     */
    List<RwsQualityControl> queryList(RwsQualityControl rwsQualityControl);

    /**
     * 获取关联质控条目
     */
    List<String> queryLinkEntryIds(Long qcId);

    /**
     * 设置质控与条目关联
     */
    boolean handleLinkEntry(List<RwsQcEntry> qcEntries);

    /**
     * 获取关联样本
     */
    List<RwsQcSample> queryLinkSamples(Long qcId);

    /**
     * 处理关联样本
     */
    List<QcSampleBackupVo> handleLinkSamplesResult(List<RwsQcSample> rwsQcSamples);

    /**
     * 新增质控与样本关联
     */
    boolean addLinkSample(List<RwsQcSample> qcSamples);

    /**
     * 移除质控与样本关联
     */
    boolean removeLinkSample(List<Long> qcSampIds);

    /**
     * 获取质控关联的条目
     */
    List<RwsQualityEntry> queryLinkEntries(Long qcId);

    /**
     * 修改质控关联的样本真实值
     */
    boolean editQcSample(RwsQcSample qcSample);

    /**
     * 修改质控
     */
    boolean updateQualityControl(RwsQualityControl rwsQualityControl);

    /**
     * 获取质控报告
     */
    List<QcEntryReportVo> queryReport(Long qcId);
}
